<template>
  <div class="app-container">
    <el-form label-width="120px">
      <el-form-item label="信息描述">
        <el-tag type="info">excel模板说明</el-tag>
        <el-tag
          ><i class="el-icon-download"></i>
          <a
            :href="`${OSS_PATH}/%E8%AF%BE%E7%A8%8B%E5%88%86%E7%B1%BB%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx`"
            >点击下载模板</a
          >
        </el-tag>
      </el-form-item>
      <el-form-item label="选取Excel">
        <!-- 
              action：上传地址
              on-preview：点击文件列表中已上传的文件时的钩子
              on-remove：文件列表移除文件时的钩子
              auto-upload：是否在选取文件后立即进行上传
              on-success：文件上传成功时的钩子
              limit：限制文件上传的最大个数
              accept：接受上传文件的类型
           -->
        <el-upload
          class="upload-demo"
          ref="upload"
          :action="`${BASE_URL}/file/import`"
          :on-preview="handlePreview"
          :on-remove="handleRemove"
          :on-success="handleSuccess"
          :auto-upload="false"
          :limit="1"
          accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        >
          <el-button slot="trigger" size="small" type="primary"
            >选取文件</el-button
          >
          <el-button
            style="margin-left: 10px"
            size="small"
            type="success"
            @click="submitUpload"
            >上传到服务器</el-button
          >
        </el-upload>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      OSS_PATH: process.env.OSS_PATH, // 获取dev配置文件中的OSS地址
      BASE_URL: process.env.BASE_API, // 获取dev配置文件中的api地址
    };
  },
  methods: {
    submitUpload() {
      // 执行上传文件操作
      this.$refs.upload.submit();
    },
    handleRemove(file, fileList) {
      console.log(file, fileList);
    },
    handlePreview(file) {
      console.log(file);
    },
    // 上传成功之后的回调方法
    handleSuccess(response, file, fileList) {
      // console.log(response);
      if (response.succeeded) {
        // 上传成功提示信息
        this.$message({
          type: "success",
          message: "上传成功!",
        });
      } else {
        // 失败
        this.$message({
          type: "error",
          message: "上传失败!",
        });
      }
    },
  },
};
</script>